As technological advances make possible the addition of ever more hardware features to computing devices, issues arise as to how to provide software support for the use of those features. As computing devices adopt an increasing variety of physical configurations and are employed in an increasing variety of applications, numerous new series of processor components have been developed and become prevalent. Fortunately, coupling such new processor components to other circuits to build computing devices has frequently been aided by continuing industry efforts to develop, maintain and update specifications for buses, allowing particular bus specifications to be widely adopted and used, even among computing devices designed to meet very different requirements.
However, many of such new series of processor components are often somewhat specialized to meet the needs of very different applications, often leading to new processor components having new instruction sets that are incompatible with each other and earlier processor components. This has encouraged the development of a widening variety of new operating systems and/or new versions of older operating systems. Thus, development of new hardware features frequently needs to be accompanied by development of software support for an increasing number of combinations of operating systems and instruction sets, and this imposes a burden that has been known to delay the introduction of new hardware features.